﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Framework.MVC.Infrastructure.ModelBinder
{
    /// <summary>
    /// Token模型绑定（后台）
    /// 注：模型绑定并不验证Token是否存在了，如果管理员在后台禁用了某个用户导致Token从redis服务器里删除，那么这个用户其实是不能再调用接口了，但是如果某个接口仅用模型绑定而未标注[BKTokenValidate]，那么此被禁用的用户照样可以调这个接口不报错
    /// 敏感接口必须标注[BKTokenValidate]
    /// </summary>
    public class BKTokenBinder : IModelBinder
    {
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            var token = controllerContext.HttpContext.Request["token"];
            return BaseController.GetBKTokenModelByToken(token);
        }
    }
}